package com.catazy.base.presentation.activity

import android.os.Bundle
import android.view.WindowManager
import android.widget.LinearLayout
import androidx.annotation.LayoutRes
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.LinearLayoutCompat
import androidx.fragment.app.Fragment
import com.google.android.material.appbar.MaterialToolbar
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
import timber.log.Timber

/**
 * 作者: Tao
 * 日期: 2024/12/20
 * 时间: 13:42
 * 描述: BaseActivity
 */
abstract class BaseActivity(@LayoutRes contentLayoutId: Int) : AppCompatActivity(contentLayoutId) {

    companion object {
        // 扩展属性：val Fragment.mainActivity: BaseActivity 定义了一个扩展属性 mainActivity，适用于所有 Fragment 类型
        // 该扩展属性通过 activity 属性获取当前 Fragment 所在的 Activity，并强制转换为 BaseActivity 类型
        val Fragment.mainActivity: BaseActivity
            get() = activity as BaseActivity

        const val DESTINATION_ALBUM_LIST_LABEL = "AlbumListFragment"
    }

    /** 在BaseActivity中声明应用程序栏组件，使其能够从其他片段中访问它们，避免循环依赖 */
    var appBarLayout: LinearLayout? = null
    var mainAppToolbar: MaterialToolbar? = null
    var searchTextInputEditText: TextInputEditText? = null
    var searchLayout: LinearLayoutCompat? = null
    var searchTextInputLayout: TextInputLayout? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // 当软键盘弹出时，活动的布局不会调整大小或位置
        window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING)

        Timber.d("onCreate: ${javaClass.simpleName}")
    }
}